package com.nnnu.orange.controller.user;


import com.nnnu.orange.constant.MessageConstants;
import com.nnnu.orange.pojo.dto.AuthorsDto;
import com.nnnu.orange.pojo.dto.AuthorsQueryDto;
import com.nnnu.orange.pojo.entity.Authors;
import com.nnnu.orange.result.PageResult;
import com.nnnu.orange.result.Result;
import com.nnnu.orange.service.IAuthorsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 存储作者的详细信息 前端控制器
 * </p>
 *
 * @author zk
 * @since 2024-11-07
 */
@RestController("userAuthorsController")
@RequestMapping("/user/authors")
@Slf4j
@RequiredArgsConstructor
@Api(tags = "用户端作者相关接口")
public class AuthorsController {
    private final IAuthorsService iAuthorsService;


    /**
     * 获取单个作者详细信息
     *
     * @param id 作者id
     * @return 作者实体
     */
    @GetMapping("/{id}")
    @ApiOperation("获取单个作者详细信息")
    public Result<Authors> getOne(@PathVariable Integer id) {
        log.info("获取单个作者详细信息:{}", id);
        return Result.success(iAuthorsService.getById(id), MessageConstants.SELECT_OK);
    }


    /**
     * 分页查询作者列表
     *
     * @param queryDto dto
     * @return 分页后的列表
     */
    @GetMapping
    @ApiOperation("分页查询作者列表")
    public Result<PageResult<Authors>> list(AuthorsQueryDto queryDto) {
        log.info("分页查询作者列表:{}", queryDto);
        return Result.success(iAuthorsService.list(queryDto), MessageConstants.SELECT_OK);
    }


}
